package models

import "time"

// FileInfo 文件信息结构
type FileInfo struct {
	ID        string      `json:"id"`         // 唯一ID
	Name      string      `json:"name"`       // 文件名
	Path      string      `json:"-"`          // 本地完整路径(不暴露给客户端)
	Size      int64       `json:"size"`       // 文件大小
	Type      string      `json:"type"`       // 文件类型 (file/directory)
	MD5       string      `json:"md5"`        // MD5校验值
	Children  []*FileInfo `json:"children"`   // 子文件(文件夹类型)
	CreatedAt time.Time   `json:"created_at"` // 添加时间
}

// DownloadProgress 下载进度信息
type DownloadProgress struct {
	FileID     string  `json:"file_id"`     // 文件ID
	FileName   string  `json:"file_name"`   // 文件名
	Progress   float64 `json:"progress"`    // 进度百分比
	Downloaded int64   `json:"downloaded"`  // 已下载字节
	Total      int64   `json:"total"`       // 总字节
	Speed      float64 `json:"speed"`       // 传输速度(MB/s)
	Status     string  `json:"status"`      // 状态: downloading/completed/failed/queued
}

// TransferLog 传输日志
type TransferLog struct {
	Time     time.Time `json:"time"`      // 时间
	ClientIP string    `json:"client_ip"` // 客户端IP
	FileName string    `json:"file_name"` // 文件名
	Size     int64     `json:"size"`      // 文件大小
	Status   string    `json:"status"`    // 状态: success/failed
	Error    string    `json:"error"`     // 错误信息
}
